﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace CityGames
{
    public partial class FormEventosJornadasT : Form
    {
        static private FormContenedor contenedor;
        static private Torneo torneo = new Torneo();
        static private Socio socio = new Socio();
        private string expRetbpuntuacion = @"^(\d{1,3})?$";
        private DataSet dsPartidos;
        private string nombreEvento;
        private string estadoEvento;
        private string letraGrupo;
        private bool modificado;

        public FormEventosJornadasT()
        {
            InitializeComponent();
        }

        private void JornadasT_Load(object sender, EventArgs e)
        {
            try
            {
                contenedor = (FormContenedor)MdiParent;
                dsPartidos = new DataSet();
                nombreEvento = "";
                estadoEvento = "";
                letraGrupo = "";
                modificado = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private bool ValidarNumero(ref TextBox textBox)
        {
            bool correcto = false;

            try
            {
                if (Regex.Match(textBox.Text, expRetbpuntuacion).Success)
                {
                    correcto = true;
                }
                else
                {
                    correcto = false;
                    textBox.Text = textBox.Text.Substring(0, textBox.Text.Length - 1);
                    MessageBox.Show("Debe introducir un número de 1 a 3 dígitos.    ", "Introduce un número.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return correcto;
        }

        private void btGrupos_Click(object sender, EventArgs e)
        {
            try
            {
                if (modificado)
                {
                    switch (MessageBox.Show("Las puntuaciones han sido modificadas. ¿Desea guardar los cambios?    ", "Datos modificados.", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question))
                    {
                        case System.Windows.Forms.DialogResult.Yes:
                            bGuardar_Click(sender, e);
                            break;
                        case System.Windows.Forms.DialogResult.No:
                            modificado = false;
                            break;
                        case System.Windows.Forms.DialogResult.Cancel:
                            break;
                    }
                }
                
                if(!modificado)
                {
                    contenedor.hijoFormEventosGruposT.CargarGrupos(nombreEvento);
                    contenedor.hijoFormEventosGruposT.Focus();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public void CargarPartidos(string evento, string letra)
        {
            try
            {
                nombreEvento = evento;
                estadoEvento = (string)torneo.ObtenerDatosDeTorneo(nombreEvento).Tables[0].Rows[0]["Estado"];
                letraGrupo = letra;
                lblGrupo.Text = "GRUPO " + letra;

                string nombreJugador1 = "";
                string nombreJugador2 = "";
                string nombreJugador3 = "";
                string nombreJugador4 = "";
                string nombreJugador5 = "";
                string nombreJugador6 = "";

                dsPartidos = torneo.ObtenerPartidosDeGrupo(evento, letraGrupo);

                if (dsPartidos.Tables[0].Rows.Count > 0)
                {
                    nombreJugador1 = socio.ObtenerNombreSocio(dsPartidos.Tables["Partidos"].Rows[0][3].ToString());
                    nombreJugador2 = socio.ObtenerNombreSocio(dsPartidos.Tables["Partidos"].Rows[0][4].ToString());
                    nombreJugador3 = socio.ObtenerNombreSocio(dsPartidos.Tables["Partidos"].Rows[1][3].ToString());
                    nombreJugador4 = socio.ObtenerNombreSocio(dsPartidos.Tables["Partidos"].Rows[2][3].ToString());
                    nombreJugador5 = socio.ObtenerNombreSocio(dsPartidos.Tables["Partidos"].Rows[2][4].ToString());
                    nombreJugador6 = socio.ObtenerNombreSocio(dsPartidos.Tables["Partidos"].Rows[1][4].ToString());

                    lblJugador11.Text = nombreJugador1;
                    lblJugador12.Text = nombreJugador1;
                    lblJugador13.Text = nombreJugador1;
                    lblJugador14.Text = nombreJugador1;
                    lblJugador15.Text = nombreJugador1;

                    lblJugador21.Text = nombreJugador2;
                    lblJugador22.Text = nombreJugador2;
                    lblJugador23.Text = nombreJugador2;
                    lblJugador24.Text = nombreJugador2;
                    lblJugador25.Text = nombreJugador2;

                    lblJugador31.Text = nombreJugador3;
                    lblJugador32.Text = nombreJugador3;
                    lblJugador33.Text = nombreJugador3;
                    lblJugador34.Text = nombreJugador3;
                    lblJugador35.Text = nombreJugador3;

                    lblJugador41.Text = nombreJugador4;
                    lblJugador42.Text = nombreJugador4;
                    lblJugador43.Text = nombreJugador4;
                    lblJugador44.Text = nombreJugador4;
                    lblJugador45.Text = nombreJugador4;

                    lblJugador51.Text = nombreJugador5;
                    lblJugador52.Text = nombreJugador5;
                    lblJugador53.Text = nombreJugador5;
                    lblJugador54.Text = nombreJugador5;
                    lblJugador55.Text = nombreJugador5;

                    lblJugador61.Text = nombreJugador6;
                    lblJugador62.Text = nombreJugador6;
                    lblJugador63.Text = nombreJugador6;
                    lblJugador64.Text = nombreJugador6;
                    lblJugador65.Text = nombreJugador6;

                    tbPunt11.Text = dsPartidos.Tables["Partidos"].Rows[0][5].ToString();
                    tbPunt12.Text = dsPartidos.Tables["Partidos"].Rows[0][6].ToString();
                    tbPunt13.Text = dsPartidos.Tables["Partidos"].Rows[1][5].ToString();
                    tbPunt14.Text = dsPartidos.Tables["Partidos"].Rows[1][6].ToString();
                    tbPunt15.Text = dsPartidos.Tables["Partidos"].Rows[2][5].ToString();
                    tbPunt16.Text = dsPartidos.Tables["Partidos"].Rows[2][6].ToString();

                    tbPunt21.Text = dsPartidos.Tables["Partidos"].Rows[3][5].ToString();
                    tbPunt22.Text = dsPartidos.Tables["Partidos"].Rows[3][6].ToString();
                    tbPunt23.Text = dsPartidos.Tables["Partidos"].Rows[4][5].ToString();
                    tbPunt24.Text = dsPartidos.Tables["Partidos"].Rows[4][6].ToString();
                    tbPunt25.Text = dsPartidos.Tables["Partidos"].Rows[5][5].ToString();
                    tbPunt26.Text = dsPartidos.Tables["Partidos"].Rows[5][6].ToString();

                    tbPunt31.Text = dsPartidos.Tables["Partidos"].Rows[6][5].ToString();
                    tbPunt32.Text = dsPartidos.Tables["Partidos"].Rows[6][6].ToString();
                    tbPunt33.Text = dsPartidos.Tables["Partidos"].Rows[7][5].ToString();
                    tbPunt34.Text = dsPartidos.Tables["Partidos"].Rows[7][6].ToString();
                    tbPunt35.Text = dsPartidos.Tables["Partidos"].Rows[8][5].ToString();
                    tbPunt36.Text = dsPartidos.Tables["Partidos"].Rows[8][6].ToString();

                    tbPunt41.Text = dsPartidos.Tables["Partidos"].Rows[9][5].ToString();
                    tbPunt42.Text = dsPartidos.Tables["Partidos"].Rows[9][6].ToString();
                    tbPunt43.Text = dsPartidos.Tables["Partidos"].Rows[10][5].ToString();
                    tbPunt44.Text = dsPartidos.Tables["Partidos"].Rows[10][6].ToString();
                    tbPunt45.Text = dsPartidos.Tables["Partidos"].Rows[11][5].ToString();
                    tbPunt46.Text = dsPartidos.Tables["Partidos"].Rows[11][6].ToString();

                    tbPunt51.Text = dsPartidos.Tables["Partidos"].Rows[12][5].ToString();
                    tbPunt52.Text = dsPartidos.Tables["Partidos"].Rows[12][6].ToString();
                    tbPunt53.Text = dsPartidos.Tables["Partidos"].Rows[13][5].ToString();
                    tbPunt54.Text = dsPartidos.Tables["Partidos"].Rows[13][6].ToString();
                    tbPunt55.Text = dsPartidos.Tables["Partidos"].Rows[14][5].ToString();
                    tbPunt56.Text = dsPartidos.Tables["Partidos"].Rows[14][6].ToString();

                    if (estadoEvento == "Grupos")
                    {
                        tbPunt11.Enabled = true;
                        tbPunt12.Enabled = true;
                        tbPunt13.Enabled = true;
                        tbPunt14.Enabled = true;
                        tbPunt15.Enabled = true;
                        tbPunt16.Enabled = true;

                        tbPunt21.Enabled = true;
                        tbPunt22.Enabled = true;
                        tbPunt23.Enabled = true;
                        tbPunt24.Enabled = true;
                        tbPunt25.Enabled = true;
                        tbPunt26.Enabled = true;

                        tbPunt31.Enabled = true;
                        tbPunt32.Enabled = true;
                        tbPunt33.Enabled = true;
                        tbPunt34.Enabled = true;
                        tbPunt35.Enabled = true;
                        tbPunt36.Enabled = true;

                        tbPunt41.Enabled = true;
                        tbPunt42.Enabled = true;
                        tbPunt43.Enabled = true;
                        tbPunt44.Enabled = true;
                        tbPunt45.Enabled = true;
                        tbPunt46.Enabled = true;

                        tbPunt51.Enabled = true;
                        tbPunt52.Enabled = true;
                        tbPunt53.Enabled = true;
                        tbPunt54.Enabled = true;
                        tbPunt55.Enabled = true;
                        tbPunt56.Enabled = true;

                        bGuardar.Enabled = true;
                    }
                    else
                    {
                        tbPunt11.Enabled = false;
                        tbPunt12.Enabled = false;
                        tbPunt13.Enabled = false;
                        tbPunt14.Enabled = false;
                        tbPunt15.Enabled = false;
                        tbPunt16.Enabled = false;

                        tbPunt21.Enabled = false;
                        tbPunt22.Enabled = false;
                        tbPunt23.Enabled = false;
                        tbPunt24.Enabled = false;
                        tbPunt25.Enabled = false;
                        tbPunt26.Enabled = false;

                        tbPunt31.Enabled = false;
                        tbPunt32.Enabled = false;
                        tbPunt33.Enabled = false;
                        tbPunt34.Enabled = false;
                        tbPunt35.Enabled = false;
                        tbPunt36.Enabled = false;

                        tbPunt41.Enabled = false;
                        tbPunt42.Enabled = false;
                        tbPunt43.Enabled = false;
                        tbPunt44.Enabled = false;
                        tbPunt45.Enabled = false;
                        tbPunt46.Enabled = false;

                        tbPunt51.Enabled = false;
                        tbPunt52.Enabled = false;
                        tbPunt53.Enabled = false;
                        tbPunt54.Enabled = false;
                        tbPunt55.Enabled = false;
                        tbPunt56.Enabled = false;

                        bGuardar.Enabled = false;
                    }

                    switch (letraGrupo)
                    {
                        case "A":
                            bAnterior.Enabled = false;
                            bSiguiente.Enabled = true;
                            break;
                        case "B":
                            bAnterior.Enabled = true;
                            if (!torneo.ExisteGrupo(nombreEvento, "C"))
                                bSiguiente.Enabled = false;
                            else
                                bSiguiente.Enabled = true;
                            break;
                        case "C":
                            bAnterior.Enabled = true;
                            if (!torneo.ExisteGrupo(nombreEvento, "D"))
                                bSiguiente.Enabled = false;
                            else
                                bSiguiente.Enabled = true;
                            break;
                        case "D":
                            bAnterior.Enabled = true;
                            bSiguiente.Enabled = false;
                            break;
                    }
                }
                else
                {
                    MessageBox.Show("No existen partidos para el grupo " + letraGrupo, "No existe el grupo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                modificado = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void bGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                if(torneo.GuardarPartidosDeGrupo(dsPartidos, nombreEvento, letraGrupo))
                {
                    string dniJugador1 = dsPartidos.Tables["Partidos"].Rows[0][3].ToString();
                    string dniJugador2 = dsPartidos.Tables["Partidos"].Rows[0][4].ToString();
                    string dniJugador3 = dsPartidos.Tables["Partidos"].Rows[1][3].ToString();
                    string dniJugador4 = dsPartidos.Tables["Partidos"].Rows[2][3].ToString();
                    string dniJugador5 = dsPartidos.Tables["Partidos"].Rows[2][4].ToString();
                    string dniJugador6 = dsPartidos.Tables["Partidos"].Rows[1][4].ToString();

                    int puntosJugador1 = 0;
                    int puntosAFavorJugador1 = 0;
                    int puntosEnContraJugador1 = 0;
                    int puntosJugador2 = 0;
                    int puntosAFavorJugador2 = 0;
                    int puntosEnContraJugador2 = 0;
                    int puntosJugador3 = 0;
                    int puntosAFavorJugador3 = 0;
                    int puntosEnContraJugador3 = 0;
                    int puntosJugador4 = 0;
                    int puntosAFavorJugador4 = 0;
                    int puntosEnContraJugador4 = 0;
                    int puntosJugador5 = 0;
                    int puntosAFavorJugador5 = 0;
                    int puntosEnContraJugador5 = 0;
                    int puntosJugador6 = 0;
                    int puntosAFavorJugador6 = 0;
                    int puntosEnContraJugador6 = 0;

                    if (tbPunt11.Text != "" && tbPunt12.Text != "")
                    {
                        if (int.Parse(tbPunt11.Text) > int.Parse(tbPunt12.Text))
                        {
                            puntosAFavorJugador1++;
                            puntosEnContraJugador2++;
                        }
                        else if (int.Parse(tbPunt11.Text) < int.Parse(tbPunt12.Text))
                        {
                            puntosAFavorJugador2++;
                            puntosEnContraJugador1++;
                        }

                        puntosJugador1 += int.Parse(tbPunt11.Text);
                        puntosJugador2 += int.Parse(tbPunt12.Text);
                    }

                    if (tbPunt13.Text != "" && tbPunt14.Text != "")
                    {
                        if (int.Parse(tbPunt13.Text) > int.Parse(tbPunt14.Text))
                        {
                            puntosAFavorJugador3++;
                            puntosEnContraJugador6++;
                        }
                        else if (int.Parse(tbPunt13.Text) < int.Parse(tbPunt14.Text))
                        {
                            puntosAFavorJugador6++;
                            puntosEnContraJugador3++;
                        }

                        puntosJugador3 += int.Parse(tbPunt13.Text);
                        puntosJugador6 += int.Parse(tbPunt14.Text);
                    }

                    if (tbPunt15.Text != "" && tbPunt16.Text != "")
                    {
                        if (int.Parse(tbPunt15.Text) > int.Parse(tbPunt16.Text))
                        {
                            puntosAFavorJugador4++;
                            puntosEnContraJugador5++;
                        }
                        else if (int.Parse(tbPunt15.Text) < int.Parse(tbPunt16.Text))
                        {
                            puntosAFavorJugador5++;
                            puntosEnContraJugador4++;
                        }

                        puntosJugador4 += int.Parse(tbPunt15.Text);
                        puntosJugador5 += int.Parse(tbPunt16.Text);
                    }

                    if (tbPunt21.Text != "" && tbPunt22.Text != "")
                    {
                        if (int.Parse(tbPunt21.Text) > int.Parse(tbPunt22.Text))
                        {
                            puntosAFavorJugador1++;
                            puntosEnContraJugador3++;
                        }
                        else if (int.Parse(tbPunt21.Text) < int.Parse(tbPunt22.Text))
                        {
                            puntosAFavorJugador3++;
                            puntosEnContraJugador1++;
                        }

                        puntosJugador1 += int.Parse(tbPunt21.Text);
                        puntosJugador3 += int.Parse(tbPunt22.Text);
                    }

                    if (tbPunt23.Text != "" && tbPunt24.Text != "")
                    {
                        if (int.Parse(tbPunt23.Text) > int.Parse(tbPunt24.Text))
                        {
                            puntosAFavorJugador2++;
                            puntosEnContraJugador4++;
                        }
                        else if (int.Parse(tbPunt23.Text) < int.Parse(tbPunt24.Text))
                        {
                            puntosAFavorJugador4++;
                            puntosEnContraJugador2++;
                        }

                        puntosJugador2 += int.Parse(tbPunt23.Text);
                        puntosJugador4 += int.Parse(tbPunt24.Text);
                    }

                    if (tbPunt25.Text != "" && tbPunt26.Text != "")
                    {
                        if (int.Parse(tbPunt25.Text) > int.Parse(tbPunt26.Text))
                        {
                            puntosAFavorJugador5++;
                            puntosEnContraJugador6++;
                        }
                        else if (int.Parse(tbPunt25.Text) < int.Parse(tbPunt26.Text))
                        {
                            puntosAFavorJugador6++;
                            puntosEnContraJugador5++;
                        }

                        puntosJugador5 += int.Parse(tbPunt25.Text);
                        puntosJugador6 += int.Parse(tbPunt26.Text);
                    }

                    if (tbPunt31.Text != "" && tbPunt32.Text != "")
                    {
                        if (int.Parse(tbPunt31.Text) > int.Parse(tbPunt32.Text))
                        {
                            puntosAFavorJugador1++;
                            puntosEnContraJugador4++;
                        }
                        else if (int.Parse(tbPunt31.Text) < int.Parse(tbPunt32.Text))
                        {
                            puntosAFavorJugador4++;
                            puntosEnContraJugador1++;
                        }

                        puntosJugador1 += int.Parse(tbPunt31.Text);
                        puntosJugador4 += int.Parse(tbPunt32.Text);
                    }

                    if (tbPunt33.Text != "" && tbPunt34.Text != "")
                    {
                        if (int.Parse(tbPunt33.Text) > int.Parse(tbPunt34.Text))
                        {
                            puntosAFavorJugador2++;
                            puntosEnContraJugador6++;
                        }
                        else if (int.Parse(tbPunt33.Text) < int.Parse(tbPunt34.Text))
                        {
                            puntosAFavorJugador6++;
                            puntosEnContraJugador2++;
                        }

                        puntosJugador2 += int.Parse(tbPunt33.Text);
                        puntosJugador6 += int.Parse(tbPunt34.Text);
                    }

                    if (tbPunt35.Text != "" && tbPunt36.Text != "")
                    {
                        if (int.Parse(tbPunt35.Text) > int.Parse(tbPunt36.Text))
                        {
                            puntosAFavorJugador3++;
                            puntosEnContraJugador5++;
                        }
                        else if (int.Parse(tbPunt35.Text) < int.Parse(tbPunt36.Text))
                        {
                            puntosAFavorJugador5++;
                            puntosEnContraJugador3++;
                        }

                        puntosJugador3 += int.Parse(tbPunt35.Text);
                        puntosJugador5 += int.Parse(tbPunt36.Text);
                    }

                    if (tbPunt41.Text != "" && tbPunt42.Text != "")
                    {
                        if (int.Parse(tbPunt41.Text) > int.Parse(tbPunt42.Text))
                        {
                            puntosAFavorJugador1++;
                            puntosEnContraJugador5++;
                        }
                        else if (int.Parse(tbPunt41.Text) < int.Parse(tbPunt42.Text))
                        {
                            puntosAFavorJugador5++;
                            puntosEnContraJugador1++;
                        }

                        puntosJugador1 += int.Parse(tbPunt41.Text);
                        puntosJugador5 += int.Parse(tbPunt42.Text);
                    }

                    if (tbPunt43.Text != "" && tbPunt44.Text != "")
                    {
                        if (int.Parse(tbPunt43.Text) > int.Parse(tbPunt44.Text))
                        {
                            puntosAFavorJugador2++;
                            puntosEnContraJugador3++;
                        }
                        else if (int.Parse(tbPunt43.Text) < int.Parse(tbPunt44.Text))
                        {
                            puntosAFavorJugador3++;
                            puntosEnContraJugador2++;
                        }

                        puntosJugador2 += int.Parse(tbPunt43.Text);
                        puntosJugador3 += int.Parse(tbPunt44.Text);
                    }

                    if (tbPunt45.Text != "" && tbPunt46.Text != "")
                    {
                        if (int.Parse(tbPunt45.Text) > int.Parse(tbPunt46.Text))
                        {
                            puntosAFavorJugador4++;
                            puntosEnContraJugador6++;
                        }
                        else if (int.Parse(tbPunt45.Text) < int.Parse(tbPunt46.Text))
                        {
                            puntosAFavorJugador6++;
                            puntosEnContraJugador4++;
                        }

                        puntosJugador4 += int.Parse(tbPunt45.Text);
                        puntosJugador6 += int.Parse(tbPunt46.Text);
                    }

                    if (tbPunt51.Text != "" && tbPunt52.Text != "")
                    {
                        if (int.Parse(tbPunt51.Text) > int.Parse(tbPunt52.Text))
                        {
                            puntosAFavorJugador1++;
                            puntosEnContraJugador6++;
                        }
                        else if (int.Parse(tbPunt51.Text) < int.Parse(tbPunt52.Text))
                        {
                            puntosAFavorJugador6++;
                            puntosEnContraJugador1++;
                        }

                        puntosJugador1 += int.Parse(tbPunt51.Text);
                        puntosJugador6 += int.Parse(tbPunt52.Text);
                    }

                    if (tbPunt53.Text != "" && tbPunt54.Text != "")
                    {
                        if (int.Parse(tbPunt53.Text) > int.Parse(tbPunt54.Text))
                        {
                            puntosAFavorJugador2++;
                            puntosEnContraJugador5++;
                        }
                        else if (int.Parse(tbPunt53.Text) < int.Parse(tbPunt54.Text))
                        {
                            puntosAFavorJugador5++;
                            puntosEnContraJugador2++;
                        }

                        puntosJugador2 += int.Parse(tbPunt53.Text);
                        puntosJugador5 += int.Parse(tbPunt54.Text);
                    }

                    if (tbPunt55.Text != "" && tbPunt56.Text != "")
                    {
                        if (int.Parse(tbPunt55.Text) > int.Parse(tbPunt56.Text))
                        {
                            puntosAFavorJugador3++;
                            puntosEnContraJugador4++;
                        }
                        else if (int.Parse(tbPunt55.Text) < int.Parse(tbPunt56.Text))
                        {
                            puntosAFavorJugador4++;
                            puntosEnContraJugador3++;
                        }

                        puntosJugador3 += int.Parse(tbPunt55.Text);
                        puntosJugador4 += int.Parse(tbPunt56.Text);
                    }

                    torneo.ActualizarPuntosDeSocio(nombreEvento, letraGrupo, dniJugador1, puntosJugador1, puntosAFavorJugador1, puntosEnContraJugador1);
                    torneo.ActualizarPuntosDeSocio(nombreEvento, letraGrupo, dniJugador2, puntosJugador2, puntosAFavorJugador2, puntosEnContraJugador2);
                    torneo.ActualizarPuntosDeSocio(nombreEvento, letraGrupo, dniJugador3, puntosJugador3, puntosAFavorJugador3, puntosEnContraJugador3);
                    torneo.ActualizarPuntosDeSocio(nombreEvento, letraGrupo, dniJugador4, puntosJugador4, puntosAFavorJugador4, puntosEnContraJugador4);
                    torneo.ActualizarPuntosDeSocio(nombreEvento, letraGrupo, dniJugador5, puntosJugador5, puntosAFavorJugador5, puntosEnContraJugador5);
                    torneo.ActualizarPuntosDeSocio(nombreEvento, letraGrupo, dniJugador6, puntosJugador6, puntosAFavorJugador6, puntosEnContraJugador6);

                    modificado = false;

                    MessageBox.Show("Puntuaciones insertadas correctamente.    ", "Puntuaciones guardadas.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Ha ocurrido un error en la inserción.    ", "Error al insertar.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt11_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt11))
                {
                    if(tbPunt11.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[0][5] = tbPunt11.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[0][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt11.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt12_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt12))
                {
                    if(tbPunt12.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[0][6] = tbPunt12.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[0][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt12.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt13_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt13))
                {
                    if (tbPunt13.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[1][5] = tbPunt13.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[1][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt13.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt14_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt14))
                {
                    if (tbPunt14.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[1][6] = tbPunt14.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[1][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt14.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt15_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt15))
                {
                    if (tbPunt15.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[2][5] = tbPunt15.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[2][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt15.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt16_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt16))
                {
                    if (tbPunt16.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[2][6] = tbPunt16.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[2][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt16.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt21_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt21))
                {
                    if (tbPunt21.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[3][5] = tbPunt21.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[3][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt21.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt22_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt22))
                {
                    if (tbPunt22.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[3][6] = tbPunt22.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[3][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt22.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt23_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt23))
                {
                    if (tbPunt23.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[4][5] = tbPunt23.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[4][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt23.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt24_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt24))
                {
                    if (tbPunt24.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[4][6] = tbPunt24.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[4][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt24.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt25_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt25))
                {
                    if (tbPunt25.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[5][5] = tbPunt25.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[5][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt25.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt26_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt26))
                {
                    if (tbPunt26.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[5][6] = tbPunt26.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[5][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt26.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt31_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt31))
                {
                    if (tbPunt31.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[6][5] = tbPunt31.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[6][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt31.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt32_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt32))
                {
                    if (tbPunt32.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[6][6] = tbPunt32.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[6][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt32.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt33_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt33))
                {
                    if (tbPunt33.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[7][5] = tbPunt33.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[7][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt33.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt34_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt34))
                {
                    if (tbPunt34.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[7][6] = tbPunt34.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[7][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt34.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt35_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt35))
                {
                    if (tbPunt35.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[8][5] = tbPunt35.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[8][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt35.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt36_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt36))
                {
                    if (tbPunt36.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[8][6] = tbPunt36.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[8][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt36.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt41_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt41))
                {
                    if (tbPunt41.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[9][5] = tbPunt41.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[9][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt41.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt42_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt42))
                {
                    if (tbPunt42.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[9][6] = tbPunt42.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[9][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt42.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt43_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt43))
                {
                    if (tbPunt43.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[10][5] = tbPunt43.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[10][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt43.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt44_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt44))
                {
                    if (tbPunt44.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[10][6] = tbPunt44.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[10][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt44.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt45_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt45))
                {
                    if (tbPunt45.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[11][5] = tbPunt45.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[11][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt45.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt46_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt46))
                {
                    if (tbPunt46.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[11][6] = tbPunt46.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[11][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt46.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt51_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt51))
                {
                    if (tbPunt51.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[12][5] = tbPunt51.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[12][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt51.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt52_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt52))
                {
                    if (tbPunt52.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[12][6] = tbPunt52.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[12][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt52.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt53_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt53))
                {
                    if (tbPunt53.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[13][5] = tbPunt53.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[13][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt53.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt54_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt54))
                {
                    if (tbPunt54.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[13][6] = tbPunt54.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[13][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt54.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt55_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt55))
                {
                    if (tbPunt55.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[14][5] = tbPunt55.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[14][5] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt55.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void tbPunt56_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (ValidarNumero(ref tbPunt56))
                {
                    if (tbPunt56.Text != "")
                        dsPartidos.Tables["Partidos"].Rows[14][6] = tbPunt56.Text;
                    else
                        dsPartidos.Tables["Partidos"].Rows[14][6] = DBNull.Value;

                    modificado = true;
                }
                else
                {
                    tbPunt56.SelectAll();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void bAnterior_Click(object sender, EventArgs e)
        {
            try
            {
                if (modificado)
                {
                    switch (MessageBox.Show("Las puntuaciones han sido modificadas. ¿Desea guardar los cambios?    ", "Datos modificados.", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question))
                    {
                        case System.Windows.Forms.DialogResult.Yes:
                            bGuardar_Click(sender, e);
                            break;
                        case System.Windows.Forms.DialogResult.No:
                            modificado = false;
                            break;
                        case System.Windows.Forms.DialogResult.Cancel:
                            break;
                    }
                }

                if (!modificado)
                {
                    switch (letraGrupo)
                    {
                        case "A":
                            break;
                        case "B":
                            CargarPartidos(nombreEvento, "A");
                            break;
                        case "C":
                            CargarPartidos(nombreEvento, "B");
                            break;
                        case "D":
                            CargarPartidos(nombreEvento, "C");
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void bSiguiente_Click(object sender, EventArgs e)
        {
            try
            {
                if (modificado)
                {
                    switch (MessageBox.Show("Las puntuaciones han sido modificadas. ¿Desea guardar los cambios?    ", "Datos modificados.", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question))
                    {
                        case System.Windows.Forms.DialogResult.Yes:
                            bGuardar_Click(sender, e);
                            break;
                        case System.Windows.Forms.DialogResult.No:
                            modificado = false;
                            break;
                        case System.Windows.Forms.DialogResult.Cancel:
                            break;
                    }
                }

                if (!modificado)
                {
                    switch (letraGrupo)
                    {
                        case "A":
                            if (torneo.ExisteGrupo(nombreEvento, "B"))
                                CargarPartidos(nombreEvento, "B");
                            break;
                        case "B":
                            if (torneo.ExisteGrupo(nombreEvento, "C"))
                                CargarPartidos(nombreEvento, "C");
                            break;
                        case "C":
                            if (torneo.ExisteGrupo(nombreEvento, "D"))
                                CargarPartidos(nombreEvento, "D");
                            break;
                        case "D":
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se ha producido un error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
